home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / include / ulog.h < prev    next >
C/C++ Source or Header  |  1989-07-14  |  2KB  |  74 lines

  1. /*
  2.  * ulog.h --
  3.  *
  4.  *    Declarations of structures, constants, and procedures to manage
  5.  *    the global database of user login/logouts.
  6.  *
  7.  * Copyright 1987, 1988 Regents of the University of California
  8.  * Permission to use, copy, modify, and distribute this
  9.  * software and its documentation for any purpose and without
  10.  * fee is hereby granted, provided that the above copyright
  11.  * notice appear in all copies.  The University of California
  12.  * makes no representations about the suitability of this
  13.  * software for any purpose.  It is provided "as is" without
  14.  * express or implied warranty.
  15.  *
  16.  * $Header: /sprite/src/lib/include/RCS/ulog.h,v 1.6 89/07/14 09:10:11 rab Exp $ SPRITE (Berkeley)
  17.  */
  18.  
  19. #ifndef _ULOG
  20. #define _ULOG
  21.  
  22. /*
  23.  * It's not clear how to handle ports.  We could use a shared file with indexes
  24.  * corresponding to "ttys", but there are other issues (like the fact that
  25.  * the kernel only maintains idle time measurements for the console, not
  26.  * for rlogins).  Therefore, define ULOG_LOC_CONSOLE as a single index
  27.  * that distinguishes local logins from remote, and use the rloginN numbers
  28.  * as non-zero indexes for the remote logins.
  29.  */
  30.  
  31. #define ULOG_LOC_CONSOLE 0
  32.  
  33.  
  34. /*
  35.  * Since each host has a region in the userLog file allocated to it,
  36.  * the number of entries for each host is (unfortunately) fixed.  This is
  37.  * done for simplicity.  The routines may later be changed to lock the
  38.  * file and find a free entry at any location rather than basing the location
  39.  * on hostID and portID.
  40.  */
  41.  
  42. #define ULOG_MAX_PORTS 10
  43.  
  44. /*
  45.  * Define the maximum length of a location entry.
  46.  */
  47. #define ULOG_LOC_LENGTH 33
  48.  
  49. /*
  50.  * Define the database files used for storing the per-user and per-host/port
  51.  * logs.
  52.  */
  53.  
  54. #define LASTLOG_FILE_NAME "/sprite/admin/lastLog"
  55. #define ULOG_FILE_NAME "/sprite/admin/userLog"
  56.  
  57. /*
  58.  * Define the structure used internally by user programs.
  59.  */
  60. typedef struct {
  61.     int    uid;        /* user identifier */
  62.     int hostID;        /* host for which data is valid */
  63.     int portID;        /* port within host */
  64.     int updated;    /* time updated (in seconds since 1/1/70); 0 if
  65.                invalid */
  66.     char location[ULOG_LOC_LENGTH];    /* location of user */
  67. } Ulog_Data;
  68.  
  69. extern int        Ulog_RecordLogin();
  70. extern int        Ulog_RecordLogout();
  71. extern Ulog_Data *    Ulog_LastLogin();
  72. extern int        Ulog_ClearLogins();
  73. #endif /* _ULOG */
  74.